perm filename APP5.XGP[AIM,DBL]1 blob sn#124705 filedate 1974-10-17 generic text, type T, neo UTF8
/LMAR=0/FONT#0=FIX25/FONT#1=SIGN57/FONT#2=SHD40/FONT#3=BDI25/FONT#4=NGB30/FONT#5=NGR20
␈↓ α,␈↓␈↓αBEINGS␈↓␈↓ 
i␈↓βDoug Lenat␈↓


␈↓ α,␈↓␈↓↓APPENDIX 5. ␈↓ ␈↓αCF .... DIALOGUE␈↓











␈↓ α,␈↓Here␈α∩are␈α∪fragments␈α∩of␈α∪the␈α∩dialogue␈α∪which␈α∩the␈α∪user␈α∩went␈α∪through␈α∩with␈α∪PUP6␈α∩to
␈↓ α,␈↓generate␈α⊗the␈α↔CF␈α⊗program.␈α↔ Near␈α⊗the␈α⊗front,␈α↔we␈α⊗entered␈α↔a␈α⊗frequent-interrupt
␈↓ α,␈↓mode␈α⊂to␈α⊂show␈α⊂what␈α⊂that␈α⊂is␈α⊂like.␈α⊂ For␈α⊂the␈α⊂sake␈α⊂of␈α⊂example,␈α⊂this␈α⊂same␈α⊂piece␈α⊂was
␈↓ α,␈↓re-run␈α⊃without␈α∩interrupting.␈α⊃ This␈α∩is␈α⊃all␈α∩noted␈α⊃below.␈α∩ As␈α⊃usual,␈α∩the␈α⊃user's
␈↓ α,␈↓reponses␈α⊃are␈α⊃␈↓βITALICIZED␈↓,␈α⊃and␈α⊃the␈α⊃author's␈α⊃meta-comments␈α⊃are␈α⊃in␈α∩␈↓∧LARGE,␈α⊃BOLD
␈↓ α,␈↓∧type␈↓.

␈↓ α,␈↓←␈↓βENTER(T)␈↓

␈↓ α,␈↓USER INTERRUPT LEVEL... ␈↓β0␈↓

␈↓ α,␈↓PUP: (PUP WANTS ANY TASK)


␈↓ α,␈↓USER: ␈↓β(WRITE A PROGRAM WHICH DOES CONCEPT FORMATION)␈↓

␈↓ α,␈↓PUP: (PUP IS ABOUT TO WRITE A PROGRAM TO DO (CONCEPT:FORMATION))


␈↓ α,␈↓PUP: ((C:F CONCEPT:FORMATION C CF) IS THE SET OF PLAUSIBLE NAMES OF (CON
␈↓ α,␈↓  -CEPT FORMATION) WHICH IS AN EXPANSION OF (
␈↓ α,␈↓CONCEPT:FORMATION))


␈↓ α,␈↓PUP: (PUP WANTS USER TO TYPE IN NAME FOR (CONCEPT:FORMATION))

␈↓ α,␈↓I DON'T KNOW ANY NAMES FOR ( CONCEPT:FORMATION), SO YOU'LL HAVE TO
␈↓ α,␈↓TYPE A BRAND NEW NAME IN TO ME.
␈↓ α,␈↓USER: ␈↓βCF␈↓

␈↓ α,␈↓PUP: (PUP AND USER ARE ABLE TO REFER TO (CONCEPT:FORMATION) AS TASK:NAME
␈↓ α,␈↓    WHICH IS CF:1)


␈↓ α,␈↓PUP: (THE NAME OF THE PROGRAM TO DO (CONCEPT:FORMATION) IS CF:1)


␈↓ α,␈↓␈↓¬Fourth Draft .... October 17, 1974␈α?␈α?␈α?␈α?␈α,page A5.1␈↓ 	↑User/PUP6 Dialogue excerpts␈↓
␈↓ α,␈↓␈↓αBEINGS␈↓␈↓ 
i␈↓βDoug Lenat␈↓


␈↓ α,␈↓␈↓∧*************************************************************
␈↓ α,␈↓∧The user interrupts, and switches to a frequent-interrupt mode:␈↓

␈↓ α,␈↓:␈↓βNEW:LEVEL(10)␈↓
␈↓ α,␈↓USER INTERRUPT LEVEL... (PERMIT:USER:INTERRUPT)
␈↓ α,␈↓:␈↓βOK␈↓


␈↓ α,␈↓INTERRUPT? ␈↓βYES
␈↓ α,␈↓β␈↓REQUEST: ␈↓βCH
␈↓ α,␈↓β␈↓NIL *** CHOOSE:FROM *** (WRITE:PROGRAM SERVE)
␈↓ α,␈↓␈↓∧This last request, CH, asked PUP6 to type out the control history;
␈↓ α,␈↓∧who called who, etc.  In the current case, this is simply a stack.
␈↓ α,␈↓∧The present BEING is CHOOSE:FROM, and it is delimited by asterisks.
␈↓ α,␈↓∧It was called by WRITE:PROGRAM which was called by SERVE.␈↓

␈↓ α,␈↓REQUEST: ␈↓βWHAT
␈↓ α,␈↓β␈↓(CHOOSE THE BEST BEING FROM THE SET (OBTAIN:USABLE:INFORMATION
␈↓ α,␈↓USE:INFORMATION FILL:IN:UNDEFINED:SECTION CLARIFY:IMPROBABLE:SITUATION
␈↓ α,␈↓ADAPT:PRECONCEIVED:FUNCTION FIX:INCORRECT:PIECE ) OF BEINGS)
␈↓ α,␈↓REQUEST: ␈↓βWHY
␈↓ α,␈↓β␈↓(BECAUSE THE FLOW OF CONTROL OF A PROGRAM MUST BE DETERMINATE)
␈↓ α,␈↓REQUEST: ␈↓βOLDER
␈↓ α,␈↓β␈↓WRITE:PROGRAM
␈↓ α,␈↓REQUEST: ␈↓βCH
␈↓ α,␈↓β␈↓(CHOOSE:FROM) *** WRITE:PROGRAM *** (SERVE)
␈↓ α,␈↓REQUEST: ␈↓βWHAT
␈↓ α,␈↓β␈↓(WRITE A PROGRAM WHICH DOES (CONCEPT:FORMATION))
␈↓ α,␈↓␈↓∧    <notice the effect of saying␈↓ ␈↓βOLDER␈↓ ␈↓∧; questions are now
␈↓ α,␈↓∧        directed to WRITE:PROGRAM instead of to CHOOSE:FROM.>␈↓
␈↓ α,␈↓REQUEST: ␈↓βWHY
␈↓ α,␈↓β␈↓(FUNDAMENTAL DRIVE TO OBEY USER; ALSO, IT IS NECESSARY THAT CODE BE WR
␈↓ α,␈↓  -ITTEN TO DO (CONCEPT:FORMATION) IN ORDER THAT
␈↓ α,␈↓THE TASK (CONCEPT:FORMATION) MIGHT BE COMPLETED; ALSO, EXAMINE SPEC:WHY)
␈↓ α,␈↓REQUEST: ␈↓βSPEC:WHY
␈↓ α,␈↓β␈↓(WE CALL THE FIRST BEING WHICH CAN BRING ABOUT THE EFFECT (TYPE OF ((C
␈↓ α,␈↓  -ONCEPT:FORMATION) HAS BEEN STUDIED)))
␈↓ α,␈↓REQUEST: ␈↓βHOW
␈↓ α,␈↓β␈↓(CREATE SPECIALIZED LISP CODE WHICH WILL DO (CONCEPT:FORMATION))
␈↓ α,␈↓REQUEST: ␈↓β?
␈↓ α,␈↓ YOUR OPTIONS ARE AS FOLLOWS:

␈↓ α,␈↓QUIT    END THE INTERRUPT
␈↓ α,␈↓BEING   PRINT NAME OF CURRENT BEING
␈↓ α,␈↓DEMONS  PRINT SET OF DEMONS CURRENTLY ACTIVE
␈↓ α,␈↓CONTROL:HISTORY    PRINT LIST OF BEINGS IN CONTROL, THE PATH FROM THE
␈↓ α,␈↓                   CURRENT BEING BACK TO THE BEGINNING OF THE PROGRAM

␈↓ α,␈↓␈↓¬Fourth Draft .... October 17, 1974␈α?␈α?␈α?␈α?␈α*page A5.2␈↓ 	↑User/PUP6 Dialogue excerpts␈↓
␈↓ α,␈↓␈↓αBEINGS␈↓␈↓ 
i␈↓βDoug Lenat␈↓


␈↓ α,␈↓OLDER   CONSIDER THE BEING WHICH CALLED THE CURRENT ONE
␈↓ α,␈↓YOUNGER CONSIDER THE BEING WHICH THE CURRENT ONE CALLED
␈↓ α,␈↓OLDEST  CONSIDER THE FIRST BEING IN CONTROL
␈↓ α,␈↓YOUNGEST    CONSIDER THE LAST BEING IN CONTROL
␈↓ α,␈↓SPEC:WHEN   AN EVALUATED VERSION OF 'WHEN'
␈↓ α,␈↓FAIL   END THE INTERRUPT AND CAUSE CURRENT BEING TO FAIL
␈↓ α,␈↓NEW:LEVEL   CHANGE THE USER:INTERRUPT LEVEL

␈↓ α,␈↓SPEC:WHY   PRINT OUT THE SPECIFIC REASON(S) THAT THIS BEING WAS
␈↓ α,␈↓            CALLED. THIS DIFFERS FROM 'WHY' IN SENSE THAT SPEC:WHY IS
␈↓ α,␈↓            THE REASON GIVEN BY THE CALLER, WHERAS WHY IS THE REASON
␈↓ α,␈↓            STORED WITH THE CURRENT BEING PERMANENTLY.



␈↓ α,␈↓TYPING ONE OF THESE WILL PRINT OUT WRITE:PROGRAM'S ANSWER TO THAT QUESTI
␈↓ α,␈↓  -ON:
␈↓ α,␈↓(IDEN IMPLICIT:ARGS EXPLICIT:ARGS EXPLICIT:ARGS:CHECK NLAMBDA NON:EVAL:A
␈↓ α,␈↓  -RGS WHAT HOW WHY SPEC:WHY MAIN:EFFECTS MINOR:EFFECTS WHEN META:CODE CO
␈↓ α,␈↓  -MMENTS PRE:REQUISITES CO:REQUISITES POST:REQUISITES DEMONS AFFECTS COM
␈↓ α,␈↓  -PLEXITY: GENERALIZATIONS SPECIALIZATIONS ALTERNATIVES PREDICATE
␈↓ α,␈↓  -DATA:STRUCTURE ENCODABLE INHIBIT:CURRENT:DEMONS FORM:CHANGING)
␈↓ α,␈↓REQUEST: ␈↓βSPEC:WHEN
␈↓ α,␈↓β␈↓((T IS T SO WE DO ADD IN THE WEIGHT (COND ((MEMBER TASK ABLE:PUP:LIST)
␈↓ α,␈↓                                               -75) (T 40))
␈↓ α,␈↓                        WHICH IN THE CURRENT CASE IS 40;
␈↓ α,␈↓    THE EXPLANATION IS (BECAUSE A PRE:EXISTING ABILITY TO DO ( CON
␈↓ α,␈↓                        CEPT:FORMATION) IMPLIES THAT WRITING A NEW
␈↓ α,␈↓                        PROGRAM TO ACCOMPLISH IT IS SUPERFLUOUS AND,
␈↓ α,␈↓                        CONVERSELY, THE INABILITY TO
␈↓ α,␈↓                        DO ( CONCEPT:FORMATION) ABDUCTIVELY
␈↓ α,␈↓                        ENCOURAGES US THAT WE ARE ON THE RIGHT TRACK))
␈↓ α,␈↓ ((MEMBER TASK WRITTEN:PROGRAMS:LIST) IS NIL, SO WE DONT ADD IN THE
␈↓ α,␈↓                        WEIGHT -80 WHICH IN THE CURRENT CASE IS -80 ;
␈↓ α,␈↓    THE EXPLANATION IS (BECAUSE WE ARE NOT MUCH AFTER EFFICIENCY, AND
␈↓ α,␈↓                        IF A PROGRAM ALREADY EXISTS, THEN WE SHOULD USE IT))
␈↓ α,␈↓ ((MEMBER ( PUP IS ABOUT TO WRITE A PROGRAM TO DO (TASK)) AWARE:USER:LIST)
␈↓ α,␈↓                        IS NIL SO WE DONT ADD IN THE WEIGHT 70
␈↓ α,␈↓                        WHICH IN THE CURRENT CASE IS 70 ;
␈↓ α,␈↓    THE EXPLANATION IS (BECAUSE WE GO BY THE OLD
␈↓ α,␈↓                        ENGLISH LEGAL RULE THAT SILENCE SIGNIFIES APPROVAL))
␈↓ α,␈↓ (T IS T SO WE DO ADD IN THE WEIGHT  (COND (NEW:INFO:LIST -120)
␈↓ α,␈↓                        (T 40)) WHICH IN THE CURRENT CASE IS 40 ;
␈↓ α,␈↓    THE EXPLANATION IS (BECAUSE WE SHOULD USE UP THE NEW INFORMATION BEFORE
␈↓ α,␈↓                        WRITING PROGRAMS
␈↓ α,␈↓                        ALSO: BECAUSE IF NO NEW INFO IS PRESENT,
␈↓ α,␈↓                        THEN WE NEEDN'T FEEL GUILTY ABOUT STARTING TO WRITE
␈↓ α,␈↓                        A PROGRAM)))

␈↓ α,␈↓␈↓¬Fourth Draft .... October 17, 1974␈α?␈α?␈α?␈α?␈α*page A5.3␈↓ 	↑User/PUP6 Dialogue excerpts␈↓
␈↓ α,␈↓␈↓αBEINGS␈↓␈↓ 
i␈↓βDoug Lenat␈↓


␈↓ α,␈↓(THE FINAL WHEN VALUE IS THUS 80)
␈↓ α,␈↓REQUEST: ␈↓βCH
␈↓ α,␈↓β␈↓(CHOOSE:FROM) *** WRITE:PROGRAM *** (SERVE)
␈↓ α,␈↓REQUEST: ␈↓βOLDER
␈↓ α,␈↓β␈↓SERVE
␈↓ α,␈↓REQUEST: ␈↓βCH
␈↓ α,␈↓β␈↓(CHOOSE:FROM WRITE:PROGRAM) *** SERVE *** NIL
␈↓ α,␈↓REQUEST: ␈↓βWHAT
␈↓ α,␈↓β␈↓(DO ANYTHING THE USER ASKS)
␈↓ α,␈↓REQUEST: ␈↓βWHY
␈↓ α,␈↓β␈↓(FUNDAMENTAL DRIVE TO SERVE THE USER)
␈↓ α,␈↓REQUEST: ␈↓βHOW
␈↓ α,␈↓β␈↓(GET A TASK FROM THE USER)
␈↓ α,␈↓REQUEST: ␈↓βQUIT
␈↓ α,␈↓β␈↓INTERRUPT? ␈↓βY
␈↓ α,␈↓NO, NO.  TYPE  YES   OR    NO   ......... INTERRUPT? ␈↓βYES
␈↓ α,␈↓β␈↓REQUEST: ␈↓βBEING
␈↓ α,␈↓β␈↓BETTER
␈↓ α,␈↓REQUEST: ␈↓βWHAT
␈↓ α,␈↓β␈↓(DECIDE WHICH OF (USE:INFORMATION (QUOTE PGM)) (OBTAIN:USABLE:INFORMAT
␈↓ α,␈↓  -ION (QUOTE PGM)) IS MORE A PROPOS TO TRY)
␈↓ α,␈↓REQUEST: ␈↓βWHY
␈↓ α,␈↓β␈↓(PUP CAN ONLY TRY AT MOST ONE OF USE:INFORMATION AND OBTAIN:USABLE:INF
␈↓ α,␈↓  -ORMATION AT A TIME)
␈↓ α,␈↓REQUEST: ␈↓βHOW
␈↓ α,␈↓β␈↓(COMPARE THE WHEN PARTS OF USE:INFORMATION AND OBTAIN:USABLE:INFORMATI
␈↓ α,␈↓  -ON AND, IF NECESSARY, COMPARE THEIR COMPLEXITY
␈↓ α,␈↓S)
␈↓ α,␈↓REQUEST: ␈↓βCOMPLEXITY:
␈↓ α,␈↓β␈↓(.5 .5 .5 .5 .1)
␈↓ α,␈↓REQUEST: ␈↓βCH
␈↓ α,␈↓β␈↓NIL *** BETTER *** (CHOOSE:FROM WRITE:PROGRAM SERVE)
␈↓ α,␈↓REQUEST: ␈↓βQUIT
␈↓ α,␈↓β␈↓INTERRUPT? ␈↓βNO
␈↓ α,␈↓β␈↓INTERRUPT? ␈↓βNO
␈↓ α,␈↓β␈↓INTERRUPT? ␈↓βNO
␈↓ α,␈↓β␈↓INTERRUPT? ␈↓βYES
␈↓ α,␈↓β␈↓REQUEST: ␈↓βWHAT
␈↓ α,␈↓β␈↓(FAST:SATISFY THE SIMPLE SUBGOAL (TYPE OF ((CONCEPT:FORMATION) HAS BEE
␈↓ α,␈↓  -N STUDIED)))
␈↓ α,␈↓REQUEST: ␈↓βHOW
␈↓ α,␈↓β␈↓(PASS CONTROL TO THE SIMPLEST SUFFICIENT BEING)
␈↓ α,␈↓REQUEST: ␈↓βAFFECTS
␈↓ α,␈↓β␈↓(((STUDY:TYPE (CONCEPT:FORMATION)) POSSIBLE:CALLED) (TRY:BEING CALLED)
␈↓ α,␈↓    (SORT CALLED) (A:BEING:ORDER CALLED))
␈↓ α,␈↓REQUEST: ␈↓βCH
␈↓ α,␈↓β␈↓NIL *** SATISFY *** (FILL:IN:UNDEFINED:SECTION CHOOSE:FROM WRITE:PROGR
␈↓ α,␈↓  -AM SERVE)

␈↓ α,␈↓␈↓¬Fourth Draft .... October 17, 1974␈α?␈α?␈α?␈α?␈α*page A5.4␈↓ 	↑User/PUP6 Dialogue excerpts␈↓
␈↓ α,␈↓␈↓αBEINGS␈↓␈↓ 
i␈↓βDoug Lenat␈↓


␈↓ α,␈↓REQUEST: ␈↓βOLDER
␈↓ α,␈↓β␈↓FILL:IN:UNDEFINED:SECTION
␈↓ α,␈↓REQUEST: ␈↓βWHAT
␈↓ α,␈↓β␈↓(FILL IN AN UNDEFINED SECTION OF CODE AND ADD IT TO THE PROGRAM PGM)
␈↓ α,␈↓REQUEST: ␈↓βWHY
␈↓ α,␈↓β␈↓(BECAUSE ALL PIECES OF CODE MUST BE DEFINED OR THE PROGRAM WONT RUN)
␈↓ α,␈↓REQUEST: ␈↓βHOW
␈↓ α,␈↓β␈↓(CHOOSE THE SIMPLEST UNDEFINED PIECE AND ENCODE IT)
␈↓ α,␈↓REQUEST: ␈↓βCHOICE
␈↓ α,␈↓β␈↓( CF:1 TYPE OF ( CONCEPT:FORMATION))
␈↓ α,␈↓REQUEST: ␈↓βQUIT
␈↓ α,␈↓β␈↓INTERRUPT? ␈↓βYES
␈↓ α,␈↓β␈↓REQUEST: ␈↓βBEING
␈↓ α,␈↓β␈↓REINVESTIGATE:DECISION
␈↓ α,␈↓REQUEST: ␈↓βWHAT
␈↓ α,␈↓β␈↓(RESOLVE THE DECISION
␈↓ α,␈↓     (BOOLEAN (SUBJECT:SPECIFIC BEHAVIOR MAY BE REQUIRED OF CF:1)
␈↓ α,␈↓      AFFECTS (WHETHER PARAMETERS
␈↓ α,␈↓               DESCRIBING AN INDIVIDUAL MUST BE READ IN BY CF:1)
␈↓ α,␈↓      WHEN (BEFORE ANY ROUTINES ARE FINALIZED)
␈↓ α,␈↓      WHY (BECAUSE ANY PROCESSING
␈↓ α,␈↓           ROUTINE MAY HAVE TO DEPEND UPON SOME INDIVIDUAL PARAMETERS)
␈↓ α,␈↓      CONCEPT:FORMATION
␈↓ α,␈↓      BECAUSE (SETINTERSECTION UNDEFINED:SECTION:LIST DOING:PUP:LIST)
␈↓ α,␈↓           IS NOW NONNULL; FIRST TRY TO DEFER IT A LITTLE LONGER)
␈↓ α,␈↓REQUEST: ␈↓βHOW
␈↓ α,␈↓β␈↓(TRY TO DEFER UNTIL ;ELSE TRY TO RESOLVE IT WITH PRESENT KNOWLEDGE ;EL
␈↓ α,␈↓  -SE ASK THE USER TO RESOLVE IT)
␈↓ α,␈↓REQUEST: ␈↓βQUIT
␈↓ α,␈↓β␈↓INTERRUPT? ␈↓βYES
␈↓ α,␈↓β␈↓REQUEST: ␈↓βCH
␈↓ α,␈↓β␈↓NIL *** DEFER:DECISION *** (REINVESTIGATE:DECISION FILL:IN:UNDEFINED:S
␈↓ α,␈↓  -ECTION CHOOSE:FROM WRITE:PROGRAM SERVE)
␈↓ α,␈↓REQUEST: ␈↓βQUIT
␈↓ α,␈↓β␈↓INTERRUPT? ␈↓βYES
␈↓ α,␈↓β␈↓REQUEST: ␈↓βCH
␈↓ α,␈↓β␈↓NIL *** UTILIZE *** (WHEN:NEXT DEFER:DECISION REINVESTIGATE:DECISION F
␈↓ α,␈↓  -ILL:IN:UNDEFINED:SECTION CHOOSE:FROM
␈↓ α,␈↓WRITE:PROGRAM SERVE)
␈↓ α,␈↓REQUEST: ␈↓βHOW
␈↓ α,␈↓β␈↓(SEARCH THROUGH NIL FOR APPLICABLE RULES)
␈↓ α,␈↓REQUEST: ␈↓βQUIT
␈↓ α,␈↓β␈↓INTERRUPT? ␈↓βYES
␈↓ α,␈↓β␈↓REQUEST: ␈↓βCH
␈↓ α,␈↓β␈↓NIL *** RESOLVE:DECISION *** (DEFER:DECISION REINVESTIGATE:DECISION FI
␈↓ α,␈↓  -LL:IN:UNDEFINED:SECTION CHOOSE:FROM
␈↓ α,␈↓WRITE:PROGRAM SERVE)
␈↓ α,␈↓REQUEST: ␈↓βWHY

␈↓ α,␈↓␈↓¬Fourth Draft .... October 17, 1974␈α?␈α?␈α?␈α?␈α*page A5.5␈↓ 	↑User/PUP6 Dialogue excerpts␈↓
␈↓ α,␈↓␈↓αBEINGS␈↓␈↓ 
i␈↓βDoug Lenat␈↓


␈↓ α,␈↓β␈↓(AS FAR AS WE KNOW AT THIS INSTANT, THE DECISION (BOOLEAN (SUBJECT:SPE
␈↓ α,␈↓  -CIFIC BEHAVIOR MAY BE REQUIRED OF CF:1) )  CANNOT BE
␈↓ α,␈↓DEFERRED ANY LONGER)
␈↓ α,␈↓REQUEST: ␈↓βHOW
␈↓ α,␈↓β␈↓(TRY TO RESOLVE (BOOLEAN (SUBJECT:SPECIFIC BEHAVIOR MAY BE REQUIRED OF
␈↓ α,␈↓    CF:1)) WITH PRESENT KNOWLEDGE; IF THAT FAILS, ASK
␈↓ α,␈↓THE USER ABOUT IT)
␈↓ α,␈↓REQUEST: ␈↓βQUIT
␈↓ α,␈↓β␈↓INTERRUPT? ␈↓βYES
␈↓ α,␈↓β␈↓REQUEST: ␈↓βCH
␈↓ α,␈↓β␈↓NIL *** ASK:USER:ABOUT *** (RESOLVE:DECISION DEFER:DECISION REINVESTIG
␈↓ α,␈↓  -ATE:DECISION FILL:IN:UNDEFINED:SECTION
␈↓ α,␈↓CHOOSE:FROM WRITE:PROGRAM SERVE)
␈↓ α,␈↓REQUEST: ␈↓βWHAT
␈↓ α,␈↓β␈↓(ASK THE USER TO RESOLVE DECISION ((BOOLEAN (SUBJECT:SPECIFIC BEHAVIOR
␈↓ α,␈↓    MAY BE REQUIRED OF CF:1))
␈↓ α,␈↓REQUEST: ␈↓βWHY
␈↓ α,␈↓β␈↓(BECAUSE PUP CANNOT RESOLVE IT, BUT MUST AT THIS TIME)
␈↓ α,␈↓REQUEST: ␈↓βQUIT
␈↓ α,␈↓MOVE CURSOR TO ( CF:1 TYPE OF ( CONCEPT:FORMATION))
␈↓ α,␈↓PUP: SORRY TO BOTHER YOU, BUT I CAN NO LONGER DEFER THIS BOOLEAN DECISIO
␈↓ α,␈↓  -N:(SUBJECT:SPECIFIC BEHAVIOR MAY BE REQUIRED
␈↓ α,␈↓OF CF:1)SINCE THE DECISION IS BOOLEAN, JUST ANSWER YES OR NO.
␈↓ α,␈↓SHOULD I DISCUSS RAMIFICATIONS?␈↓βNO␈↓  ␈↓∧  If the user answered
␈↓ α,␈↓∧affirmatively, copious amounts of data would appear, describing
␈↓ α,␈↓∧what this choice is, the effects of each possible answer, why it
␈↓ α,␈↓∧can't wait, who wanted this done, and so on. ␈↓

␈↓ α,␈↓NOW TYPE YOUR ANSWER: ␈↓βNO␈↓

␈↓ α,␈↓OK, READY TO MOVE ON NOW.


␈↓ α,␈↓␈↓∧Here are a few more direct queries to BEINGS during the trace:␈↓

␈↓ α,␈↓REQUEST: ␈↓βUNDEFINED:SECTION:LIST
␈↓ α,␈↓β␈↓(( PARTITION:A:DOMAIN) ( PAD:2 TYPE OF ( PARTITION:A
␈↓ α,␈↓   :DOMAIN)))
␈↓ α,␈↓REQUEST: ␈↓βAWARE:USER:LIST
␈↓ α,␈↓β␈↓(( THE NAME OF THE PROGRAM TO DO ( CONCEPT:FORMATION) IS C
␈↓ α,␈↓  -F:1) ( PUP AND USER ARE ABLE TO REFER
␈↓ α,␈↓TO ( CONCEPT:FORMATION) AS TASK:NAME WHICH IS CF:1))
␈↓ α,␈↓REQUEST: ␈↓β(PLUS 2 2)␈↓ ␈↓∧ Converse to DWIM: we try to understand; if
␈↓ α,␈↓∧        we can't, THEN we try to EVAL the expression
␈↓ α,␈↓∧␈↓4
␈↓ α,␈↓REQUEST: ␈↓βDEMONS
␈↓ α,␈↓β␈↓(FRINGE:OF:CONCIOUSNESS:DEMON PSYCHOLOGY:DEMON PROGRAM:WRITING:DEMONS

␈↓ α,␈↓␈↓¬Fourth Draft .... October 17, 1974␈α?␈α?␈α?␈α?␈α*page A5.6␈↓ 	↑User/PUP6 Dialogue excerpts␈↓
␈↓ α,␈↓␈↓αBEINGS␈↓␈↓ 
i␈↓βDoug Lenat␈↓


␈↓ α,␈↓  -DEFERRAL:DEMON REINVESTIGATION:DEMON IDIOM:DEMON
␈↓ α,␈↓SPECIFICITY:CHECK:DEMON FORGETFUL:USER:DEMON)
␈↓ α,␈↓THE DEMON STACK IS ((PROGRAM:WRITING:DEMONS DEFERRAL:DEMON REINVESTIGATI
␈↓ α,␈↓  -ON:DEMON IDIOM:DEMON SPECIFICITY:CHECK:DEMON
␈↓ α,␈↓FORGETFUL:USER:DEMON) (FORGETFUL:USER:DEMON))
␈↓ α,␈↓REQUEST: ␈↓βBEING:STACK
␈↓ α,␈↓β␈↓(WRITE:PROGRAM SERVE)
␈↓ α,␈↓REQUEST: ␈↓βNEW:LEVEL
␈↓ α,␈↓HELLO THERE.  I AM READY TO START .

␈↓ α,␈↓HOW OFTEN SHOULD I LET YOU INTERRRUPT ME, TO ASK ME ABOUT WHAT I'M
␈↓ α,␈↓DOING?  TYPE A DIGIT, AS EXPLAINED BELOW:

␈↓ α,␈↓0  NEVER (ULTIMATE PRODUCTION-RUN MODE)
␈↓ α,␈↓2  A COUPLE OF TIMES DURING THE COURSE OF WRITING A PROGRAM
␈↓ α,␈↓4  DURING EACH PHASE OF WRITING A PROGRAM
␈↓ α,␈↓6  DURING THE WRITING OF EACH NONTRIVIAL SUBFUNCTION OF A PROGRAM
␈↓ α,␈↓8  DURING EACH PHASE OF WRITING EACH SUBFUNCTION OF A PROGRAM
␈↓ α,␈↓10 EACH TIME A BEING TRANSFERS CONTROL (ULTIMATE DEBUG MODE)

␈↓ α,␈↓OK, NOW TYPE A DIGIT... ␈↓βNO␈↓

␈↓ α,␈↓***  ERROR  ***     YOU MUST TYPE ONE EVEN INTEGER FROM 0 TO 10
␈↓ α,␈↓                      TRY   AGAIN:
␈↓ α,␈↓␈↓β(A C)␈↓

␈↓ α,␈↓***  ERROR  ***     YOU MUST TYPE πNE EVEN INTEGER FROM 0 TO 10
␈↓ α,␈↓                      TRY   AGAIN:
␈↓ α,␈↓␈↓β8␈↓
␈↓ α,␈↓REQUEST: ␈↓βQUIT



␈↓ α,␈↓␈↓∧<We now pick up where we interrupted  before  (line  of  asterisks,
␈↓ α,␈↓∧above)  with  no more interruptions this time.  The line of asterisks
␈↓ α,␈↓∧below marks the point corresponding to where we left  interrupt-mode.
␈↓ α,␈↓∧What just took 4 pages to print now takes 7 lines; if we went through
␈↓ α,␈↓∧the entire dialogue in interrupt-mode, it would obscure the synthesis
␈↓ α,␈↓∧process.>␈↓


␈↓ α,␈↓MOVE CURSOR TO ( CF:1 TYPE OF ( CONCEPT:FORMATION))
␈↓ α,␈↓PUP: SORRY TO BOTHER YOU, BUT I CAN NO LONGER DEFER THIS BOOLEAN DECISIO
␈↓ α,␈↓  -N:(SUBJECT:SPECIFIC BEHAVIOR MAY BE REQUIRED
␈↓ α,␈↓OF CF:1)SINCE THE DECISION IS BOOLEAN, JUST ANSWER YES OR NO.
␈↓ α,␈↓SHOULD I DISCUSS RAMIFICATIONS?␈↓βNO␈↓


␈↓ α,␈↓␈↓¬Fourth Draft .... October 17, 1974␈α?␈α?␈α?␈α?␈α*page A5.7␈↓ 	↑User/PUP6 Dialogue excerpts␈↓
␈↓ α,␈↓␈↓αBEINGS␈↓␈↓ 
i␈↓βDoug Lenat␈↓


␈↓ α,␈↓NOW TYPE YOUR ANSWER: ␈↓βNO␈↓

␈↓ α,␈↓OK, READY TO MOVE ON NOW.

␈↓ α,␈↓␈↓∧**********************************************************

␈↓ α,␈↓∧Yes, these few lines above are the same as all the previous pages
␈↓ α,␈↓∧of dialogue, but without all the interruptions.␈↓


␈↓ α,␈↓MOVE CURSOR TO CF:1


␈↓ α,␈↓PUP IS NOW GOING TO ENCODE THE PIECE
␈↓ α,␈↓  (TEMPORARILY (PARTITION:A:DOMAIN))


␈↓ α,␈↓OF THE FUNCTION CF:1 INTO LISP.   FUNCTION NAMES WILL
␈↓ α,␈↓BE QUERIED IN PREORDER, AS NEEDED.


␈↓ α,␈↓PUP WANTS USER TO TYPE IN NAME FOR ( PARTITION:A:DOMAIN)
␈↓ α,␈↓I DON'T KNOW ANY NAMES FOR ( PARTITION:A:DOMAIN), SO YOU'LL HAVE TO
␈↓ α,␈↓TYPE A BRAND NEW NAME IN TO ME.
␈↓ α,␈↓USER: ␈↓βPAD␈↓

␈↓ α,␈↓THE NAME CHOSEN IS PAD:2

␈↓ α,␈↓DRAW A LINE FROM THE FUNCTION CALL  NIL OF THE FUNCTION CF:1 TO THIS NEW
␈↓ α,␈↓    PIECE OF CODE, WHICH IS ITS BODY:

␈↓ α,␈↓(CF:1
␈↓ α,␈↓  (LAMBDA (DUMMY:ARGUMENT:3 DUMMY:ARGUMENT:2 DUMMY:ARGUMENT:1)
␈↓ α,␈↓    (TEMPORARILY (PAD:2))))
␈↓ α,␈↓(CF:1 redefined) ␈↓∧ The "piece of code" is now just the META:CODE of
␈↓ α,␈↓∧the new BEING CF:1.  Other parts have been filled in, so it is no
␈↓ α,␈↓∧longer defined as above.  The full, long definition contains much
␈↓ α,␈↓∧bookkeeping but nothing of relevance to tell the user. ␈↓

␈↓ α,␈↓MOVE CURSOR TO ( PAD:2 TYPE OF ( PARTITION:A:DOMAIN))
␈↓ α,␈↓PUP: SORRY TO BOTHER YOU, BUT I CAN NO LONGER DEFER THIS SOMEOF DECISION
␈↓ α,␈↓   :(PARTITION:BY:TAKE:ELE:AND:CLASS
␈↓ α,␈↓PARTITION:BY:TAKE:CLASS:GET:ELE PARTITION:BY:TAKE:ELE:GET:CLASS)
␈↓ α,␈↓SINCE THE DECISION IS SOME:OF, TYPE ANY ORDERED SUBSET OF:
␈↓ α,␈↓(A .... PARTITION:BY:TAKE:ELE:AND:CLASS)
␈↓ α,␈↓(B .... PARTITION:BY:TAKE:CLASS:GET:ELE)
␈↓ α,␈↓(C .... PARTITION:BY:TAKE:ELE:GET:CLASS)

␈↓ α,␈↓␈↓¬Fourth Draft .... October 17, 1974␈α?␈α?␈α?␈α?␈α*page A5.8␈↓ 	↑User/PUP6 Dialogue excerpts␈↓
␈↓ α,␈↓␈↓αBEINGS␈↓␈↓ 
i␈↓βDoug Lenat␈↓


␈↓ α,␈↓FOR EXAMPLE, (B D) WOULD MEAN THAT THE 2ND AND 4TH ITEMS ARE RELEVANT
␈↓ α,␈↓SHOULD I DISCUSS RAMIFICATIONS?␈↓βNO␈↓


␈↓ α,␈↓USER: ␈↓β(A C)␈↓


␈↓ α,␈↓AT THIS POINT, I ALMOST RECOMMENDED VIRTUAL STRUCTURING, BUT DECIDED
␈↓ α,␈↓AGAINST IT.  THE LIST STRUCTURE WOULD HAVE BEEN DIVIDED INTO THESE
␈↓ α,␈↓PIECES: (PARTITION:BY:TAKE:ELE:AND:CLASS:PART:OF:NIL
␈↓ α,␈↓        PARTITION:BY:TAKE:ELE:GET:CLASS:PART:OF:NIL)
␈↓ α,␈↓(I GUESS THAT EACH OF THE ABOVE :NIL-S WOULD GET REPLACED BY SOMETHING L
␈↓ α,␈↓  -IKE ":PARTITION:LIST")


␈↓ α,␈↓MOVE CURSOR TO PAD:2


␈↓ α,␈↓PUP IS NOW GOING TO ENCODE THE PIECE
␈↓ α,␈↓  (REPEATEDLY (TAKE:HOLD:OF ELEMENT)
␈↓ α,␈↓              (COND ((IS:OF:TYPE ELEMENT (COMMENT PARTITION:BY:TAKE:ELE:
␈↓ α,␈↓  -AND:CLASS))
␈↓ α,␈↓                     (PROGN (TAKE:HOLD:OF NAME:OF:CLASS)
␈↓ α,␈↓                            (MODIFY:STRUCTURE NAME:OF:CLASS)))
␈↓ α,␈↓                    (T (PROGN (GET:HOLD:OF NAME:OF:CLASS)
␈↓ α,␈↓                              (MODIFY:STRUCTURE NAME:OF:CLASS)))))


␈↓ α,␈↓OF THE FUNCTION PAD:2 INTO LISP.   FUNCTION NAMES WILL
␈↓ α,␈↓BE QUERIED IN PREORDER, AS NEEDED.

␈↓ α,␈↓␈↓∧<There is nothing of interest in asking the user for a name. Henceforth
␈↓ α,␈↓∧ only the result of the naming process will be printed>␈↓

␈↓ α,␈↓PUP WANTS USER TO TYPE IN NAME FOR ( TAKE:HOLD:OF)
␈↓ α,␈↓THE NAME CHOSEN IS TAKE:HOLD:OF:3

␈↓ α,␈↓PUP WANTS USER TO TYPE IN NAME FOR ( ELEMENT)
␈↓ α,␈↓THE NAME CHOSEN IS ELEMENT:4

␈↓ α,␈↓PUP WANTS USER TO TYPE IN NAME FOR ( IS:OF:TYPE)
␈↓ α,␈↓THE NAME CHOSEN IS HAS:NAME:5

␈↓ α,␈↓PUP WANTS USER TO TYPE IN NAME FOR ( ELEMENT)
␈↓ α,␈↓IS THIS THE SAME AS A ( ELEMENT) WHICH WE'VE ALREADY SEEN AND NAME
␈↓ α,␈↓  -D?

␈↓ α,␈↓USER: ␈↓βYES␈↓

␈↓ α,␈↓␈↓¬Fourth Draft .... October 17, 1974␈α?␈α?␈α?␈α?␈α*page A5.9␈↓ 	↑User/PUP6 Dialogue excerpts␈↓
␈↓ α,␈↓␈↓αBEINGS␈↓␈↓ 
i␈↓βDoug Lenat␈↓


␈↓ α,␈↓SINCE ELEMENT:4 IS THE ONLY NAME FOR ( ELEMENT),
␈↓ α,␈↓AT LEAST AS FAR AS PUP KNOWS RIGHT NOW, PUP ASSUMES THAT IS THE ONE
␈↓ α,␈↓YOU WANT. AM I RIGHT?
␈↓ α,␈↓USER: ␈↓βYES␈↓

␈↓ α,␈↓THE NAME CHOSEN IS ELEMENT:4

␈↓ α,␈↓PUP WANTS USER TO TYPE IN NAME FOR ( TAKE:HOLD:OF)
␈↓ α,␈↓THE NAME CHOSEN IS TAKE:HOLD:OF:6

␈↓ α,␈↓PUP WANTS USER TO TYPE IN NAME FOR ( MODIFY:STRUCTURE)
␈↓ α,␈↓THE NAME CHOSEN IS MODIFY:STRUCTURE:7

␈↓ α,␈↓PUP WANTS USER TO TYPE IN NAME FOR ( GET:HOLD:OF)
␈↓ α,␈↓THE NAME CHOSEN IS GET:HOLD:OF:8

␈↓ α,␈↓PUP WANTS USER TO TYPE IN NAME FOR ( MODIFY:STRUCTURE)
␈↓ α,␈↓THE NAME CHOSEN IS MODIFY:STRUCTURE:9

␈↓ α,␈↓DRAW A LINE FROM THE FUNCTION CALL  (PAD:2) OF THE FUNCTION PAD:2 TO THI
␈↓ α,␈↓  -S NEW PIECE OF CODE, WHICH IS ITS BODY:

␈↓ α,␈↓(PAD:2
␈↓ α,␈↓  (LAMBDA (DUMMY:ARGUMENT:3 DUMMY:ARGUMENT:2 DUMMY:ARGUMENT:1)
␈↓ α,␈↓    (PROG NIL
␈↓ α,␈↓      LABEL:1
␈↓ α,␈↓          (TAKE:HOLD:OF:3 ELEMENT:4)
␈↓ α,␈↓          (COND
␈↓ α,␈↓            ((HAS:NAME:5 ELEMENT:4 (COMMENT PARTITION:BY:TAKE:ELE:AND:CL
␈↓ α,␈↓  -ASS))
␈↓ α,␈↓              (PROGN (TAKE:HOLD:OF:6 NAME:OF:CLASS)
␈↓ α,␈↓                     (MODIFY:STRUCTURE:7 NAME:OF:CLASS)))
␈↓ α,␈↓            (T (PROGN (GET:HOLD:OF:8 NAME:OF:CLASS)
␈↓ α,␈↓                      (MODIFY:STRUCTURE:9 NAME:OF:CLASS))))
␈↓ α,␈↓          (GO LABEL:1)
␈↓ α,␈↓          (COMMENT INFINITE LOOP IN THIS PROG))))
␈↓ α,␈↓(PAD:2 redefined)

␈↓ α,␈↓MOVE CURSOR TO ( ELEMENT:4 TYPE OF ( ELEMENT))
␈↓ α,␈↓PUP: SORRY TO BOTHER YOU, BUT I CAN NO LONGER DEFER THIS DEFINITION DECI
␈↓ α,␈↓  -SION:(WHAT IS AN ELEMENT)
␈↓ α,␈↓SINCE THE QUESTION IS ONE OF DEFINITION, PLEASE JUST
␈↓ α,␈↓TYPE IN THE DEFINITION OF ELEMENT:4
␈↓ α,␈↓SHOULD I DISCUSS RAMIFICATIONS?␈↓βNO␈↓

␈↓ α,␈↓USER: ␈↓β(A DESCRIPTION OF A STATIC SCENE)␈↓



␈↓ α,␈↓␈↓¬Fourth Draft .... October 17, 1974␈α?␈α?␈α?␈α?␈α"page A5.10␈↓ 	↑User/PUP6 Dialogue excerpts␈↓
␈↓ α,␈↓␈↓αBEINGS␈↓␈↓ 
i␈↓βDoug Lenat␈↓


␈↓ α,␈↓PUP: ((S:S STATIC:SCENE S SS) IS THE SET OF PLAUSIBLE NAMES OF (STATIC S
␈↓ α,␈↓  -CENE) WHICH IS AN EXPANSION OF (STATIC SCENE))


␈↓ α,␈↓PUP: (PUP WANTS USER TO TYPE IN NAME FOR (STATIC SCENE))
␈↓ α,␈↓PUP: (PUP AND USER ARE ABLE TO REFER TO (STATIC SCENE) AS TNAME WHICH IS
␈↓ α,␈↓    STATIC:SCENE:10)


␈↓ α,␈↓DRAW A LINE FROM THE FUNCTION CALL  (ELEMENT:4 (COMMENT PARTITION:BY:TAK
␈↓ α,␈↓  -E:ELE:AND:CLASS)) OF THE FUNCTION ELEMENT:4 TO THIS NEW PIECE OF CODE,
␈↓ α,␈↓    WHICH IS ITS BODY:

␈↓ α,␈↓(ELEMENT:4
␈↓ α,␈↓  (LAMBDA (DUMMY:ARGUMENT:3 DUMMY:ARGUMENT:2 DUMMY:ARGUMENT:1)
␈↓ α,␈↓    (STRUCTURE (OBJECTS SET O)
␈↓ α,␈↓               (CLASS:NAME NAME N)
␈↓ α,␈↓               (STATIC RELATIONS S BETWEEN OBJECTS))))
␈↓ α,␈↓(ELEMENT:4 redefined)

␈↓ α,␈↓MOVE CURSOR TO ( HAS:NAME:5 TYPE OF ( IS:OF:TYPE))
␈↓ α,␈↓PUP: SORRY TO BOTHER YOU, BUT I CAN NO LONGER DEFER THIS DEFINITION DECI
␈↓ α,␈↓  -SION:(HOW DO WE KNOW WHEN THE 'IS:OF:TYPE'
␈↓ α,␈↓PREDICATE IS TRUE, AND WHEN IT IS FALSE? PUP ASSUMES THAT USER WILL TYPE
␈↓ α,␈↓    IN A LOGICAL SENTENCE WHOSE TRUTH IS EQUIVALENT
␈↓ α,␈↓TO IT)SINCE THE QUESTION IS ONE OF DEFINITION, PLEASE JUST
␈↓ α,␈↓TYPE IN THE DEFINITION OF HAS:NAME:5

␈↓ α,␈↓SINCE THIS IS A PREDICATE, THE EXPRESSION YOU TYPE IN SHOULD BE A
␈↓ α,␈↓LOGICAL EXPRESSION, WHICH IS TRUE IF ELEMENT:4 IS OF
␈↓ α,␈↓THE (PARTITION:BY:TAKE:ELE:AND:CLASS) TYPE, AND SHOULD BE FALSE IF IT IS
␈↓ α,␈↓  -NT OF
␈↓ α,␈↓THAT TYPE.

␈↓ α,␈↓SHOULD I DISCUSS RAMIFICATIONS?␈↓βNO␈↓

␈↓ α,␈↓USER: ␈↓β(THE FRONT PART OF ARG1 ISNT ???)␈↓
␈↓ α,␈↓(IS ??? A LITERAL CONSTANT (WHOSE VALUE SHOULD BE ITSELF) (REPLY YES OR
␈↓ α,␈↓  -NO, PLEASE) USER...)
␈↓ α,␈↓␈↓βYES␈↓

␈↓ α,␈↓MOVE CURSOR TO HAS:NAME:5


␈↓ α,␈↓PUP IS NOW GOING TO ENCODE THE PIECE
␈↓ α,␈↓  (NOT (EQUAL (CAR ARG1)
␈↓ α,␈↓              ???))


␈↓ α,␈↓␈↓¬Fourth Draft .... October 17, 1974␈α?␈α?␈α?␈α?␈α"page A5.11␈↓ 	↑User/PUP6 Dialogue excerpts␈↓
␈↓ α,␈↓␈↓αBEINGS␈↓␈↓ 
i␈↓βDoug Lenat␈↓


␈↓ α,␈↓OF THE FUNCTION HAS:NAME:5 INTO LISP.   FUNCTION NAMES WILL
␈↓ α,␈↓BE QUERIED IN PREORDER, AS NEEDED.

␈↓ α,␈↓DRAW A LINE FROM THE FUNCTION CALL  (HAS:NAME:5 ELEMENT:4 (COMMENT PARTI
␈↓ α,␈↓  -TION:BY:TAKE:ELE:AND:CLASS)) OF THE FUNCTION HAS:NAME:5 TO THIS NEW PI
␈↓ α,␈↓  -ECE OF CODE, WHICH IS ITS BODY:

␈↓ α,␈↓(HAS:NAME:5
␈↓ α,␈↓  (LAMBDA (ARG1 DUMMY:ARGUMENT:2 DUMMY:ARGUMENT:1)
␈↓ α,␈↓    (COMMENT IN ALL CALLS TO DATE, ARG1 IS INSTANTIATED AS ELEMENT:4)
␈↓ α,␈↓    (NOT (EQUAL (CAR ARG1)
␈↓ α,␈↓                ???))))


␈↓ α,␈↓(HAS:NAME:5 redefined)

␈↓ α,␈↓MOVE CURSOR TO ( TAKE:HOLD:OF:3 TYPE OF ( TAKE:HOLD:OF))
␈↓ α,␈↓PUP: SORRY TO BOTHER YOU, BUT I CAN NO LONGER DEFER THIS DICHOTOMY DECIS
␈↓ α,␈↓  -ION:...

␈↓ α,␈↓AHA!!!! I'VE RESOLVED IT MYSELF!!! NO NEED TO INTERACT WITH THE SLOW
␈↓ α,␈↓USER CHANNEL AFTER ALL!!!
␈↓ α,␈↓(PUP IS ABOUT TO ENCODE AN ASSIGNMENT: (OBJECTS SET O) WILL BE SET TO SO
␈↓ α,␈↓  -ME PART OF ARG1 WHICH IS GOING TO BE
␈↓ α,␈↓INSTANTIATED DURING THE RUNNING OF THE PROGRAM AS ELEMENT:4 .PUP WANTS A
␈↓ α,␈↓    NAME FOR THIS 'SOME PART OF' FUNCTION.)

␈↓ α,␈↓PUP WANTS USER TO TYPE IN NAME FOR ( OBJECTS:SET:O)
␈↓ α,␈↓I DON'T KNOW ANY NAMES FOR ( OBJECTS:SET:O), SO YOU'LL HAVE TO
␈↓ α,␈↓TYPE A BRAND NEW NAME IN TO ME.
␈↓ α,␈↓USER: ␈↓βELEMENT:OBJECTS␈↓

␈↓ α,␈↓THE NAME CHOSEN IS ELEMENT:OBJECTS:11

␈↓ α,␈↓PUP WANTS USER TO TYPE IN NAME FOR ( SOME:PART:OF)
␈↓ α,␈↓THE NAME CHOSEN IS SOME:PART:OF:12
␈↓ α,␈↓ .
␈↓ α,␈↓ .
␈↓ α,␈↓ .

␈↓ α,␈↓DRAW A LINE FROM THE FUNCTION CALL  (TAKE:HOLD:OF:3 ELEMENT:4) OF THE FU
␈↓ α,␈↓  -NCTION TAKE:HOLD:OF:3 TO THIS NEW PIECE OF CODE, WHICH IS ITS BODY:

␈↓ α,␈↓(TAKE:HOLD:OF:3
␈↓ α,␈↓  (NLAMBDA (ARG1)
␈↓ α,␈↓    (COMMENT IN ALL CALLS TO DATE, ARG1 IS INSTANTIATED AS ELEMENT:4)
␈↓ α,␈↓    (PROGN (PUPRINT (COMMENT READY TO ACCEPT BRAND NEW ELEMENT:4))
␈↓ α,␈↓           (SET ARG1 (PREAD))

␈↓ α,␈↓␈↓¬Fourth Draft .... October 17, 1974␈α?␈α?␈α?␈α?␈α"page A5.12␈↓ 	↑User/PUP6 Dialogue excerpts␈↓
␈↓ α,␈↓␈↓αBEINGS␈↓␈↓ 
i␈↓βDoug Lenat␈↓


␈↓ α,␈↓           (SETQ ELEMENT:OBJECTS:11 (SOME:PART:OF:12 (EVAL ARG1)))
␈↓ α,␈↓           (SETQ ELEMENT:CLASSNAME:13 (SOME:PART:OF:14 (EVAL ARG1)))
␈↓ α,␈↓           (SETQ ELEMENT:RELNS:15 (SOME:PART:OF:16 (EVAL ARG1)))
␈↓ α,␈↓           T)))

␈↓ α,␈↓(TAKE:HOLD:OF:3 redefined)
␈↓ α,␈↓(COMMENT NAME:OF:CLASS IS NOT A BEING YET)

␈↓ α,␈↓MOVE CURSOR TO ( TAKE:HOLD:OF:6 TYPE OF ( TAKE:HOLD:OF))

␈↓ α,␈↓(THE ASSIGNMENT WHICH SET NAME:OF:CLASS
␈↓ α,␈↓   WAS DONE EARLIER; SHOULD A NEW VALUE OF N
␈↓ α,␈↓  -AME:OF:CLASS BE READ IN AT THIS POINT IN
␈↓ α,␈↓THE PROGRAM FLOW? USER...)
␈↓ α,␈↓␈↓βNO␈↓


␈↓ α,␈↓MOVE CURSOR TO TAKE:HOLD:OF:6


␈↓ α,␈↓DRAW A LINE FROM THE FUNCTION CALL  (TAKE:HOLD:OF:6 NAME:OF:CLASS) OF TH
␈↓ α,␈↓  -E FUNCTION TAKE:HOLD:OF:6 TO THIS NEW PIECE OF CODE, WHICH IS ITS BODY
␈↓ α,␈↓   :

␈↓ α,␈↓(TAKE:HOLD:OF:6
␈↓ α,␈↓  (NLAMBDA (ARG1)
␈↓ α,␈↓    (COMMENT IN ALL CALLS TO DATE, ARG1 IS INSTANTIATED AS NAME:OF:CLASS
␈↓ α,␈↓   )
␈↓ α,␈↓    (PROGN (COMMENT NOTHING MUCH TO DO HERE; JUST ONE SIMPLE ASSIGNMENT
␈↓ α,␈↓  -TO AN ALREADY EXISITNG VALUE)
␈↓ α,␈↓           (SET ARG1 OBVIOUS:KNOWN:VALUE:OF:NAME:OF:CLASS))))
␈↓ α,␈↓(TAKE:HOLD:OF:6 redefined)

␈↓ α,␈↓MOVE CURSOR TO ( GET:HOLD:OF:8 TYPE OF ( GET:HOLD:OF))
␈↓ α,␈↓PUP: SORRY TO BOTHER YOU, BUT I CAN NO LONGER DEFER THIS SOMEOF DECISION
␈↓ α,␈↓   :(COMPUTE SEARCH GENERATE:AND:TEST)
␈↓ α,␈↓SINCE THE DECISION IS SOME:OF, TYPE ANY ORDERED SUBSET OF:
␈↓ α,␈↓(A .... COMPUTE)
␈↓ α,␈↓(B .... SEARCH)
␈↓ α,␈↓(C .... GENERATE:AND:TEST)

␈↓ α,␈↓USER: ␈↓β(B)␈↓


␈↓ α,␈↓YOU MUST GIVE ME A LIST OF ALL THE VALUES THAT COULD EVER OCCUR AS
␈↓ α,␈↓NAMES ON THE LIST STRUCTURE SET:OF:POSSIBLE:NAMES:OF:CLASS
␈↓ α,␈↓IF THIS ISN'T MEANINGFUL, REPLY NIL.
␈↓ α,␈↓USER: ␈↓βNIL␈↓

␈↓ α,␈↓␈↓¬Fourth Draft .... October 17, 1974␈α?␈α?␈α?␈α?␈α"page A5.13␈↓ 	↑User/PUP6 Dialogue excerpts␈↓
␈↓ α,␈↓␈↓αBEINGS␈↓␈↓ 
i␈↓βDoug Lenat␈↓


␈↓ α,␈↓MOVE CURSOR TO ( GET:HOLD:OF:8 TYPE OF ( GET:HOLD:OF))
␈↓ α,␈↓PUP: SORRY TO BOTHER YOU, BUT I CAN NO LONGER DEFER THIS BOOLEAN DECISIO
␈↓ α,␈↓  -N:(DOES AN ALGORITHM ALREADY EXIST WHICH GETS
␈↓ α,␈↓PRECISELY NAME:OF:CLASS)SINCE THE DECISION IS BOOLEAN, JUST ANSWER YES O
␈↓ α,␈↓  -R NO.
␈↓ α,␈↓SHOULD I DISCUSS RAMIFICATIONS?␈↓βNO␈↓

␈↓ α,␈↓NOW TYPE YOUR ANSWER: ␈↓βNO␈↓

␈↓ α,␈↓OK, READY TO MOVE ON NOW.

␈↓ α,␈↓MOVE CURSOR TO GET:HOLD:OF:8


␈↓ α,␈↓PUP IS NOW GOING TO ENCODE THE PIECE
␈↓ α,␈↓  (PROGN (FOREACH POSSIBLE:NAME:OF:CLASS IN SET:OF:POSSIBLE:NAMES:OF:CLA
␈↓ α,␈↓  -SS DO (TEST POSSIBLE:NAME:OF:CLASS
␈↓ α,␈↓       (COMMENT FOR SATISFACTION OF GOAL
␈↓ α,␈↓        CRITERIA)))
␈↓ α,␈↓         (PUPRIN1 "
␈↓ α,␈↓MY GUESS FOR THIS IS ")
␈↓ α,␈↓         (PUPRINT POSSIBLE:NAME:OF:CLASS))


␈↓ α,␈↓OF THE FUNCTION GET:HOLD:OF:8 INTO LISP.   FUNCTION NAMES WILL
␈↓ α,␈↓BE QUERIED IN PREORDER, AS NEEDED.

␈↓ α,␈↓PUP WANTS USER TO TYPE IN NAME FOR ( FOREACH)
␈↓ α,␈↓ .
␈↓ α,␈↓ .
␈↓ α,␈↓ .

␈↓ α,␈↓MOVE CURSOR TO ( FOREACH:17 TYPE OF ( FOREACH))
␈↓ α,␈↓PUP: SORRY TO BOTHER YOU, BUT I CAN NO LONGER DEFER THIS BOOLEAN DECISIO
␈↓ α,␈↓  -N:(I ASSUME THAT I STOP AFTER EXAMINING ALL
␈↓ α,␈↓POSSIBLE:NAMES:OF:CLASS IN SET:OF:POSSIBLE:NAMES:OF:CLASS ; DO I ALSO ST
␈↓ α,␈↓  -OP AFTER SOME CONDITION 'C' BECOMES TRUE?)
␈↓ α,␈↓SINCE THE DECISION IS BOOLEAN, JUST ANSWER YES OR NO.
␈↓ α,␈↓SHOULD I DISCUSS RAMIFICATIONS?␈↓βNO␈↓

␈↓ α,␈↓NOW TYPE YOUR ANSWER: ␈↓βYES␈↓

␈↓ α,␈↓PLEASE TYPE IN A PREDICATE EQUIVALENT TO THIS UNTIL CONDITION 'C'.
␈↓ α,␈↓(TYPING IN ]  WILL MEAN THAT THE CONDITION IS THAT RESULT:1
␈↓ α,␈↓ IS NONNULL.)
␈↓ α,␈↓USER: ␈↓β(TEST:18 SUCCEEDED)␈↓

␈↓ α,␈↓OK, READY TO MOVE ON NOW.

␈↓ α,␈↓␈↓¬Fourth Draft .... October 17, 1974␈α?␈α?␈α?␈α?␈α"page A5.14␈↓ 	↑User/PUP6 Dialogue excerpts␈↓
␈↓ α,␈↓␈↓αBEINGS␈↓␈↓ 
i␈↓βDoug Lenat␈↓


␈↓ α,␈↓MOVE CURSOR TO FOREACH:17


␈↓ α,␈↓DRAW A LINE FROM THE FUNCTION CALL  (FOREACH:17 POSSIBLE:NAME:OF:CLASS I
␈↓ α,␈↓  -N SET:OF:POSSIBLE:NAMES:OF:CLASS DO (TEST:18 POSSIBLE:NAME:OF:CLASS (C
␈↓ α,␈↓  -OMMENT FOR SATISFACTION OF GOAL CRITERIA))) OF THE FUNCTION FOREACH:17
␈↓ α,␈↓    TO THIS NEW PIECE OF CODE, WHICH IS ITS BODY:

␈↓ α,␈↓(FOREACH:17
␈↓ α,␈↓  (NLAMBDA (ARG1 DUMMY:ARGUMENT:2 ARG3 DUMMY:ARGUMENT:1 ARG5)
␈↓ α,␈↓    (COMMENT IN ALL CALLS TO DATE, ARG3 IS INSTANTIATED AS SET:OF:POSSIB
␈↓ α,␈↓  -LE:NAMES:OF:CLASS)
␈↓ α,␈↓    (PROGN (COMMENT IN ALL CALLS TO DATE, ARG1 IS BOUND TO POSSIBLE:NAME
␈↓ α,␈↓   :OF:CLASS)
␈↓ α,␈↓           (COMMENT IN ALL CALLS TO DATE, ARG3 IS BOUND TO SET:OF:POSSIB
␈↓ α,␈↓  -LE:NAMES:OF:CLASS)
␈↓ α,␈↓           (COMMENT IN ALL CALLS TO DATE, ARG5 IS BOUND TO (COMMENT TEST
␈↓ α,␈↓   :18 POSSIBLE:NAME:OF:CLASS
␈↓ α,␈↓                                                                    (COM
␈↓ α,␈↓  -MENT FOR SATISFACTION OF GOAL CRITERIA)))
␈↓ α,␈↓           (PROG (RESULT:1)
␈↓ α,␈↓                 (SETQ EVAL:ARG3 (EVAL ARG3))
␈↓ α,␈↓             LABEL:2
␈↓ α,␈↓                 (COND
␈↓ α,␈↓                   ((NULL EVAL:ARG3)
␈↓ α,␈↓                     (SET ARG1 FAILURE:VALUE)
␈↓ α,␈↓                     (RETURN EXHAUSTION:VALUE)))
␈↓ α,␈↓                 (SET ARG1 (CAR EVAL:ARG3))
␈↓ α,␈↓                 (SETQ EVAL:ARG3 (CDR EVAL:ARG3))
␈↓ α,␈↓                 (SETQ RESULT:1 (EVAL ARG5))
␈↓ α,␈↓                 (COND
␈↓ α,␈↓                   ((NOT (EQUAL RESULT:1 NIL))
␈↓ α,␈↓                     (RETURN UNTIL:CONDITION:VALUE))
␈↓ α,␈↓                   (T (GO LABEL:2)))
␈↓ α,␈↓                 (COMMENT AT THE TIME THAT FOREACH:17 WAS CODED, THE UNT
␈↓ α,␈↓  -IL CONDITION VALUE WAS LEFT UNDEFINED)))))

␈↓ α,␈↓(FOREACH:17 redefined)

␈↓ α,␈↓MOVE CURSOR TO ( TEST:18 TYPE OF ( TEST))
␈↓ α,␈↓PUP: SORRY TO BOTHER YOU, BUT I CAN NO LONGER DEFER THIS BOOLEAN DECISIO
␈↓ α,␈↓  -N:(SHOULD WE IMPLEMENT ERROR RECOVERY IN ANY
␈↓ α,␈↓FANCY WAY)SINCE THE DECISION IS BOOLEAN, JUST ANSWER YES OR NO.
␈↓ α,␈↓SHOULD I DISCUSS RAMIFICATIONS?␈↓βNO␈↓

␈↓ α,␈↓NOW TYPE YOUR ANSWER: ␈↓βNO␈↓

␈↓ α,␈↓NOTHING TO DO AT THIS TIME, THEN.

␈↓ α,␈↓␈↓¬Fourth Draft .... October 17, 1974␈α?␈α?␈α?␈α?␈α"page A5.15␈↓ 	↑User/PUP6 Dialogue excerpts␈↓
␈↓ α,␈↓␈↓αBEINGS␈↓␈↓ 
i␈↓βDoug Lenat␈↓


␈↓ α,␈↓OK, READY TO MOVE ON NOW.

␈↓ α,␈↓PUP: SORRY TO BOTHER YOU, BUT I CAN NO LONGER DEFER THIS DICHOTOMY DECIS
␈↓ α,␈↓  -ION:(( THE TESTING MAY HAVE THE CHARACTER
␈↓ α,␈↓OF COMPARING THE OBJECT ( THAT IS, ARG1, ALSO KNOWN AS
␈↓ α,␈↓   ( CADDR ENT1)) WITH SOME DISTINGUISHED OBJECT)
␈↓ α,␈↓( TESTING MAY HAVE THE CHARACTER OF LETTING THE OBJECT ( WHI
␈↓ α,␈↓  -CH IS ARG1) COMPETE WITH ITS FELLOW OBJECTS
␈↓ α,␈↓FOR SUPREMACY)
␈↓ α,␈↓ABOVE, ARG1 REFERS TO POSSIBLE:NAME:OF:CLASS )

␈↓ α,␈↓AHA!!!! I'VE RESOLVED IT MYSELF!!! NO NEED TO INTERACT WITH THE SLOW
␈↓ α,␈↓USER CHANNEL AFTER ALL!!!

␈↓ α,␈↓MOVE CURSOR TO TEST:18


␈↓ α,␈↓PUP IS NOW GOING TO ENCODE THE PIECE
␈↓ α,␈↓  (COMPARE ARG1 ELEMENT:4)


␈↓ α,␈↓OF THE FUNCTION TEST:18 INTO LISP.   FUNCTION NAMES WILL
␈↓ α,␈↓BE QUERIED IN PREORDER, AS NEEDED.

␈↓ α,␈↓PUP WANTS USER TO TYPE IN NAME FOR ( COMPARE)
␈↓ α,␈↓ .
␈↓ α,␈↓ .
␈↓ α,␈↓ .
␈↓ α,␈↓DRAW A LINE FROM THE FUNCTION CALL  (COMPARE:19 ARG1 ELEMENT:4) OF THE F
␈↓ α,␈↓  -UNCTION COMPARE:19 TO THIS NEW PIECE OF CODE, WHICH IS ITS BODY:

␈↓ α,␈↓(COMPARE:19
␈↓ α,␈↓  (LAMBDA (ARG1 ARG2)
␈↓ α,␈↓    (COMMENT IN ALL CALLS TO DATE, ARG1 IS INSTANTIATED AS POSSIBLE:NAME
␈↓ α,␈↓   :OF:CLASS)
␈↓ α,␈↓    (COMMENT IN ALL CALLS TO DATE, ARG2 IS INSTANTIATED AS ELEMENT:4)
␈↓ α,␈↓    (PROGN ARG1 ARG2 (COMMENT ARG1 AND ARG2 ARE HERE SIMPLY TO CAUSE PUP
␈↓ α,␈↓    TO STICK IN COMMENTS ABOUT THEIR INSTANTIATION)
␈↓ α,␈↓           (JOIN:23 (COMPARE:24 POSSIBLE:NAME:OF:CLASS:OBJECTS:20 ELEMEN
␈↓ α,␈↓  -T:OBJECTS:11)
␈↓ α,␈↓                    (COMPARE:25 POSSIBLE:NAME:OF:CLASS:CLASSNAME:21 ELEM
␈↓ α,␈↓  -ENT:CLASSNAME:13)
␈↓ α,␈↓                    (COMPARE:26 POSSIBLE:NAME:OF:CLASS:RELNS:22 ELEMENT:
␈↓ α,␈↓  -RELNS:15)))))
␈↓ α,␈↓(COMPARE:19 redefined)


␈↓ α,␈↓␈↓∧Here begins one of the sections discussed on page 11 of this paper.␈↓

␈↓ α,␈↓␈↓¬Fourth Draft .... October 17, 1974␈α?␈α?␈α?␈α?␈α"page A5.16␈↓ 	↑User/PUP6 Dialogue excerpts␈↓
␈↓ α,␈↓␈↓αBEINGS␈↓␈↓ 
i␈↓βDoug Lenat␈↓


␈↓ α,␈↓MOVE CURSOR TO ( JOIN:23 TYPE OF ( JOINING:FUNCTION))
␈↓ α,␈↓PUP: SORRY TO BOTHER YOU, BUT I CAN NO LONGER DEFER THIS PREDICATE DECIS
␈↓ α,␈↓  -ION:(WHEN WE TERMINATE THE LOOP)

␈↓ α,␈↓PLEASE TYPE IN A LOGICAL EXPRESSION WHICH IS TRUE ( WHEN WE TERMIN
␈↓ α,␈↓  -ATE THE LOOP) AND IS FALSE OTHERWISE.

␈↓ α,␈↓SHOULD I DISCUSS RAMIFICATIONS?␈↓βNO␈↓

␈↓ α,␈↓USER: ␈↓β(ANY RELATION IN POSSIBLE:NAME:OF:CLASS:RELNS:22 IS INCOMPATIBLE
␈↓ α,␈↓β    WITH ELEMENT:RELNS:15)␈↓

␈↓ α,␈↓MOVE CURSOR TO JOIN:23


␈↓ α,␈↓PUP IS NOW GOING TO ENCODE THE PIECE
␈↓ α,␈↓  (AND ARG1 ARG2 ARG3)


␈↓ α,␈↓OF THE FUNCTION JOIN:23 INTO LISP.   FUNCTION NAMES WILL
␈↓ α,␈↓BE QUERIED IN PREORDER, AS NEEDED.

␈↓ α,␈↓DRAW A LINE FROM THE FUNCTION CALL OF THE FUNCTION JOIN:23 TO THIS NEW PI
␈↓ α,␈↓  -ECE OF CODE, WHICH IS ITS BODY:

␈↓ α,␈↓(JOIN:23
␈↓ α,␈↓  (LAMBDA (ARG1 ARG2 ARG3)
␈↓ α,␈↓    (COMMENT IN ALL CALLS TO DATE, ARG1 IS INSTANTIATED AS
␈↓ α,␈↓      COMPARE:24  POSSIBLE:NAME:OF:CLASS:OBJECTS:20   ELEMENT:OBJECTS:11))
␈↓ α,␈↓    (COMMENT IN ALL CALLS TO DATE, ARG2 IS INSTANTIATED AS
␈↓ α,␈↓      COMPARE:25  POSSIBLE:NAME:OF:CLASS:CLASSNAME:21 ELEMENT:CLASSNAME:13))
␈↓ α,␈↓    (COMMENT IN ALL CALLS TO DATE, ARG3 IS INSTANTIATED AS
␈↓ α,␈↓      COMPARE:26  POSSIBLE:NAME:OF:CLASS:RELNS:22 ELEMENT:RELNS:15))

␈↓ α,␈↓    (AND ARG1 ARG2 ARG3)))
␈↓ α,␈↓(JOIN:23 redefined)

␈↓ α,␈↓(COMMENT POSSIBLE:NAME:OF:CLASS:OBJECTS:20 IS NOT A BEING YET)
␈↓ α,␈↓(COMMENT ELEMENT:OBJECTS:11 IS NOT A BEING YET)

␈↓ α,␈↓ .
␈↓ α,␈↓ .
␈↓ α,␈↓ .
␈↓ α,␈↓MOVE CURSOR TO ( COMPARE:26 TYPE OF ( COMPARE))
␈↓ α,␈↓PUP: SORRY TO BOTHER YOU, BUT I CAN NO LONGER DEFER THIS DICHOTOMY DECIS
␈↓ α,␈↓  -ION:(( COMPARING MAY INVOLVE A FUNCTION
␈↓ α,␈↓APPLIED DIRECTLY TO THE TWO ARGUMENTS) ( COMPARING MAY INVOLVE APP
␈↓ α,␈↓  -LYING A FUNCTION TO CORRESPONDING PAIRS OF

␈↓ α,␈↓␈↓¬Fourth Draft .... October 17, 1974␈α?␈α?␈α?␈α?␈α"page A5.17␈↓ 	↑User/PUP6 Dialogue excerpts␈↓
␈↓ α,␈↓␈↓αBEINGS␈↓␈↓ 
i␈↓βDoug Lenat␈↓


␈↓ α,␈↓SUBPARTS OF THE OBJECTS, AND FINALLY JOINING TOGETHER ALL THESE SUB-COMP
␈↓ α,␈↓  -ARISONS' RESULTS) (ABOVE, A
␈↓ α,␈↓  -RG1 REFERS TO POSSIBLE:NAME:OF:CLASS:RELNS:22
␈↓ α,␈↓;ALSO, PLEASE IGNORE THE THIRD 'CHOICE'; IT IS ONLY FOR ME TO LOOK AT)

␈↓ α,␈↓AHA!!!! I'VE RESOLVED IT MYSELF!!! NO NEED TO INTERACT WITH THE SLOW
␈↓ α,␈↓USER CHANNEL AFTER ALL!!!

␈↓ α,␈↓MOVE CURSOR TO COMPARE:26


␈↓ α,␈↓PUP IS NOW GOING TO ENCODE THE PIECE
␈↓ α,␈↓  (PROGN (COMMENT HERE WE MAY LATER WANT TO PUT SOME ASSIGNMENTS, REWRIT
␈↓ α,␈↓  -ES, AND ITERATIVE STATEMENTS)
␈↓ α,␈↓         (COND ((NOT (FORSOME RELATION IN POSSIBLE:NAME:OF:CLASS:RELNS:2
␈↓ α,␈↓  -2 (RECOGNIZE:# RELATION ELEMENT:RELNS:15)))
␈↓ α,␈↓                T)
␈↓ α,␈↓               (T NIL)))


␈↓ α,␈↓OF THE FUNCTION COMPARE:26 INTO LISP.   FUNCTION NAMES WILL
␈↓ α,␈↓BE QUERIED IN PREORDER, AS NEEDED.

␈↓ α,␈↓PUP WANTS USER TO TYPE IN NAME FOR ( RECOGNIZE:#)
␈↓ α,␈↓I DON'T KNOW ANY NAMES FOR ( RECOGNIZE:#), SO YOU'LL HAVE TO
␈↓ α,␈↓TYPE A BRAND NEW NAME IN TO ME.
␈↓ α,␈↓USER: ␈↓βCONTRADICTS␈↓

␈↓ α,␈↓THE NAME CHOSEN IS CONTRADICTS:27

␈↓ α,␈↓MOVE CURSOR TO ( CONTRADICTS:27 TYPE OF ( RECOGNIZE:#))
␈↓ α,␈↓PUP: SORRY TO BOTHER YOU, BUT I CAN NO LONGER DEFER THIS SOMEOF DECISION
␈↓ α,␈↓   :(PROBABILITY=1:# PROBABILITY=0:#
␈↓ α,␈↓PROBABILITY>0&<1:#)SINCE THE DECISION IS SOME:OF, TYPE ANY ORDERED SUBSE
␈↓ α,␈↓  -T OF:
␈↓ α,␈↓(A .... PROBABILITY=1:#)
␈↓ α,␈↓(B .... PROBABILITY=0:#)
␈↓ α,␈↓(C .... PROBABILITY>0&<1:#)

␈↓ α,␈↓USER: ␈↓β(A B C)␈↓


␈↓ α,␈↓(I RECOMMEND THAT POSSIBLE:NAME:OF:CLASS:RELNS:22 BE STRUCTURED INTO (AT
␈↓ α,␈↓    LEAST ALONG ONE DIMENSION) THESE 3 PIECES:
␈↓ α,␈↓(PROBABILITY=1:#:PART:OF:POSSIBLE:NAME:OF:CLASS:RELNS:22 PROBABILITY=0:#
␈↓ α,␈↓   :PART:OF:POSSIBLE:NAME:OF:CLASS:RELNS:22
␈↓ α,␈↓PROBABILITY>0&<1:#:PART:OF:POSSIBLE:NAME:OF:CLASS:RELNS:22) .PLEASE TYPE
␈↓ α,␈↓    BACK YES, NO, OR UNSURE.)

␈↓ α,␈↓␈↓¬Fourth Draft .... October 17, 1974␈α?␈α?␈α?␈α?␈α"page A5.18␈↓ 	↑User/PUP6 Dialogue excerpts␈↓
␈↓ α,␈↓␈↓αBEINGS␈↓␈↓ 
i␈↓βDoug Lenat␈↓


␈↓ α,␈↓USER: ␈↓βYES␈↓

␈↓ α,␈↓PUP WANTS USER TO TYPE IN NAME FOR ( PROBABILITY:1:#:PART:OF:POSSI
␈↓ α,␈↓  -BLE:NAME:OF:CLASS:RELNS)

␈↓ α,␈↓I DON'T KNOW ANY NAMES FOR ( PROBABILITY:1:#:PART:OF:POSSIBLE:NAME
␈↓ α,␈↓   :OF:CLASS:RELNS), SO YOU'LL HAVE TO
␈↓ α,␈↓TYPE A BRAND NEW NAME IN TO ME.
␈↓ α,␈↓USER: ␈↓βYES:RELNS␈↓

␈↓ α,␈↓THE NAME CHOSEN IS YES:RELNS:28

␈↓ α,␈↓PUP WANTS USER TO TYPE IN NAME FOR ( PROBABILITY:0:#:PART:OF:POSSI
␈↓ α,␈↓  -BLE:NAME:OF:CLASS:RELNS)
␈↓ α,␈↓THE NAME CHOSEN IS NO:RELNS:29

␈↓ α,␈↓PUP WANTS USER TO TYPE IN NAME FOR ( PROBABILITY>0&<1:#:PART:OF:PO
␈↓ α,␈↓  -SSIBLE:NAME:OF:CLASS:RELNS)
␈↓ α,␈↓THE NAME CHOSEN IS MAYBE:RELNS:30


␈↓ α,␈↓DRAW A LINE FROM THE FUNCTION CALL  (CONTRADICTS:27 RELATION ELEMENT:REL
␈↓ α,␈↓  -NS:15) OF THE FUNCTION CONTRADICTS:27 TO THIS NEW PIECE OF CODE, WHICH
␈↓ α,␈↓    IS ITS BODY:

␈↓ α,␈↓(CONTRADICTS:27
␈↓ α,␈↓  (LAMBDA (ARG1 ARG2)
␈↓ α,␈↓    (COMMENT IN ALL CALLS TO DATE, ARG1 IS INSTANTIATED AS RELATION)
␈↓ α,␈↓    (COMMENT IN ALL CALLS TO DATE, ARG2 IS INSTANTIATED AS ELEMENT:RELNS
␈↓ α,␈↓   :15)
␈↓ α,␈↓    (PROGN NIL
␈↓ α,␈↓           (COND
␈↓ α,␈↓             ((MEMBER ARG1 YES:RELNS:28)
␈↓ α,␈↓               (PROGN (COMMENT ARG1 OCCURS WITH PROBABILITY 1, SO IT HAD
␈↓ α,␈↓    BETTER BE
␈↓ α,␈↓                         IN ARG2, THE RELEVANT PIECE OF THE WORLD)
␈↓ α,␈↓                      (NOT (MEMBER ARG1 ARG2))))
␈↓ α,␈↓             ((MEMBER ARG1 NO:RELNS:29)
␈↓ α,␈↓               (PROGN (COMMENT SINCE ARG1 SHOULD NEVER OCCUR, WE HAVE A
␈↓ α,␈↓  -CONTRADICTION
␈↓ α,␈↓                                                   IF IT IS A MEMBER OF
␈↓ α,␈↓  -ARG2)
␈↓ α,␈↓                      (MEMBER ARG1 ARG2)))
␈↓ α,␈↓             (T (PROGN (COMMENT WE MAY OR MAY NOT HAVE ARG1 IN ARG2; EIT
␈↓ α,␈↓  -HER CASE IS ALLOWABLE; SO WE
␈↓ α,␈↓                          NEVER HAVE A CONTRADICTION)
␈↓ α,␈↓                       NIL))))))
␈↓ α,␈↓(CONTRADICTS:27 redefined)

␈↓ α,␈↓␈↓¬Fourth Draft .... October 17, 1974␈α?␈α?␈α?␈α?␈α"page A5.19␈↓ 	↑User/PUP6 Dialogue excerpts␈↓
␈↓ α,␈↓␈↓αBEINGS␈↓␈↓ 
i␈↓βDoug Lenat␈↓


␈↓ α,␈↓PUP: (PUP WORKED ON SOMETHING IMPROBABLE, NAMELY (IN ALL CODE GENERATED,
␈↓ α,␈↓    POSSIBLE:NAME:OF:CLASS:RELNS:22 SHOULD BE
␈↓ α,␈↓REPLACED BY (APPEND YES:RELNS:28 NO:RELNS:29 MAYBE:RELNS:30)) ,AND HERE
␈↓ α,␈↓  -IS WHAT WE FINALLY DID ABOUT IT: (WE REPLACED
␈↓ α,␈↓ALL OCCURRENCES OF POSSIBLE:NAME:OF:CLASS:RELNS:22 BY (APPEND YES:RELNS:
␈↓ α,␈↓  -28 NO:RELNS:29 MAYBE:RELNS:30)))


␈↓ α,␈↓MOVE CURSOR TO ( MODIFY:STRUCTURE:7 TYPE OF ( MODIFY:STRUCTU
␈↓ α,␈↓  -RE))
␈↓ α,␈↓PUP: SORRY TO BOTHER YOU, BUT I CAN NO LONGER DEFER THIS SUBSETOF DECISI
␈↓ α,␈↓  -ON:(CONDITIONAL:INSERTION CONDITIONAL:DELETION
␈↓ α,␈↓COMPLEX:ALTERATION)SINCE THE DECISION IS SUBSET:OF, TYPE ANY ORDERED SUB
␈↓ α,␈↓  -SET OF:
␈↓ α,␈↓(A .... CONDITIONAL:INSERTION)
␈↓ α,␈↓(B .... CONDITIONAL:DELETION)
␈↓ α,␈↓(C .... COMPLEX:ALTERATION)

␈↓ α,␈↓USER: ␈↓β(A C)␈↓

␈↓ α,␈↓DRAW A LINE FROM THE FUNCTION CALL  (MODIFY:STRUCTURE:7 NAME:OF:CLASS) O
␈↓ α,␈↓  -F THE FUNCTION MODIFY:STRUCTURE:7 TO THIS NEW PIECE OF CODE, WHICH IS
␈↓ α,␈↓  -ITS BODY:

␈↓ α,␈↓(MODIFY:STRUCTURE:7
␈↓ α,␈↓  (LAMBDA (ARG1)
␈↓ α,␈↓    (COMMENT IN ALL CALLS TO DATE, ARG1 IS INSTANTIATED AS NAME:OF:CLASS
␈↓ α,␈↓   )
␈↓ α,␈↓    (COMMENT IN ALL CALLS TO DATE, ARG2 IS INSTANTIATED AS NIL)
␈↓ α,␈↓    (PROGN (CONDITIONAL:INSERTION:31 ARG1 ARG2)
␈↓ α,␈↓           (COMPLEX:ALTERATION:32 ARG1 ARG2))))
␈↓ α,␈↓(MODIFY:STRUCTURE:7 redefined)


␈↓ α,␈↓I HAVE DECIDED TO KEEP POSSIBLE:NAME:OF:CLASS STRUCTURED USING THE PROPE
␈↓ α,␈↓  -RTY LIST
␈↓ α,␈↓FEATURE OF LISP.  FOR THIS REASON, I NEED TO HAVE A NAME FOR EACH
␈↓ α,␈↓PROPERTY (CORRESPONDING TO EACH SUBPART OF POSSIBLE:NAME:OF:CLASS) :

␈↓ α,␈↓␈↓∧<This is the end of the example fragments of dialogue>␈↓









␈↓ α,␈↓␈↓¬Fourth Draft .... October 17, 1974␈α?␈α?␈α?␈α?␈α"page A5.20␈↓ 	↑User/PUP6 Dialogue excerpts␈↓